filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X
ACTIVATE1(n__nats1(X)) -> NATS1(X)
SIEVE1(cons2(s1(N), Y)) -> ACTIVATE1(Y)
FILTER3(cons2(X, Y), s1(N), M) -> ACTIVATE1(Y)
ZPRIMES -> SIEVE1(nats1(s1(s1(0))))
SIEVE1(cons2(0, Y)) -> ACTIVATE1(Y)
SIEVE1(cons2(s1(N), Y)) -> FILTER3(activate1(Y), N, N)
ZPRIMES -> NATS1(s1(s1(0)))
FILTER3(cons2(X, Y), 0, M) -> ACTIVATE1(Y)
ACTIVATE1(n__filter3(X1, X2, X3)) -> FILTER3(X1, X2, X3)
ACTIVATE1(n__sieve1(X)) -> SIEVE1(X)
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
ACTIVATE1(n__nats1(X)) -> NATS1(X)
SIEVE1(cons2(s1(N), Y)) -> ACTIVATE1(Y)
FILTER3(cons2(X, Y), s1(N), M) -> ACTIVATE1(Y)
ZPRIMES -> SIEVE1(nats1(s1(s1(0))))
SIEVE1(cons2(0, Y)) -> ACTIVATE1(Y)
SIEVE1(cons2(s1(N), Y)) -> FILTER3(activate1(Y), N, N)
ZPRIMES -> NATS1(s1(s1(0)))
FILTER3(cons2(X, Y), 0, M) -> ACTIVATE1(Y)
ACTIVATE1(n__filter3(X1, X2, X3)) -> FILTER3(X1, X2, X3)
ACTIVATE1(n__sieve1(X)) -> SIEVE1(X)
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
SIEVE1(cons2(s1(N), Y)) -> ACTIVATE1(Y)
FILTER3(cons2(X, Y), s1(N), M) -> ACTIVATE1(Y)
SIEVE1(cons2(0, Y)) -> ACTIVATE1(Y)
SIEVE1(cons2(s1(N), Y)) -> FILTER3(activate1(Y), N, N)
FILTER3(cons2(X, Y), 0, M) -> ACTIVATE1(Y)
ACTIVATE1(n__filter3(X1, X2, X3)) -> FILTER3(X1, X2, X3)
ACTIVATE1(n__sieve1(X)) -> SIEVE1(X)
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SIEVE1(cons2(s1(N), Y)) -> ACTIVATE1(Y)
SIEVE1(cons2(0, Y)) -> ACTIVATE1(Y)
SIEVE1(cons2(s1(N), Y)) -> FILTER3(activate1(Y), N, N)
ACTIVATE1(n__sieve1(X)) -> SIEVE1(X)
Used ordering: Polynomial interpretation [21]:
FILTER3(cons2(X, Y), s1(N), M) -> ACTIVATE1(Y)
FILTER3(cons2(X, Y), 0, M) -> ACTIVATE1(Y)
ACTIVATE1(n__filter3(X1, X2, X3)) -> FILTER3(X1, X2, X3)
POL(0) = 0
POL(ACTIVATE1(x1)) = 2·x1
POL(FILTER3(x1, x2, x3)) = 2·x1
POL(SIEVE1(x1)) = 1 + 2·x1
POL(activate1(x1)) = x1
POL(cons2(x1, x2)) = x2
POL(filter3(x1, x2, x3)) = x1
POL(n__filter3(x1, x2, x3)) = x1
POL(n__nats1(x1)) = x1
POL(n__sieve1(x1)) = 1 + x1
POL(nats1(x1)) = x1
POL(s1(x1)) = 0
POL(sieve1(x1)) = 1 + x1
activate1(n__nats1(X)) -> nats1(X)
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
activate1(X) -> X
sieve1(X) -> n__sieve1(X)
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
nats1(N) -> cons2(N, n__nats1(s1(N)))
nats1(X) -> n__nats1(X)
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
FILTER3(cons2(X, Y), s1(N), M) -> ACTIVATE1(Y)
FILTER3(cons2(X, Y), 0, M) -> ACTIVATE1(Y)
ACTIVATE1(n__filter3(X1, X2, X3)) -> FILTER3(X1, X2, X3)
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FILTER3(cons2(X, Y), s1(N), M) -> ACTIVATE1(Y)
FILTER3(cons2(X, Y), 0, M) -> ACTIVATE1(Y)
ACTIVATE1(n__filter3(X1, X2, X3)) -> FILTER3(X1, X2, X3)
POL(0) = 2
POL(ACTIVATE1(x1)) = 2 + 2·x1
POL(FILTER3(x1, x2, x3)) = 1 + 2·x1 + x3
POL(cons2(x1, x2)) = 1 + 2·x2
POL(n__filter3(x1, x2, x3)) = 2 + 2·x1 + 2·x2 + 2·x3
POL(s1(x1)) = 2
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
filter3(cons2(X, Y), 0, M) -> cons2(0, n__filter3(activate1(Y), M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, n__filter3(activate1(Y), N, M))
sieve1(cons2(0, Y)) -> cons2(0, n__sieve1(activate1(Y)))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), n__sieve1(filter3(activate1(Y), N, N)))
nats1(N) -> cons2(N, n__nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
filter3(X1, X2, X3) -> n__filter3(X1, X2, X3)
sieve1(X) -> n__sieve1(X)
nats1(X) -> n__nats1(X)
activate1(n__filter3(X1, X2, X3)) -> filter3(X1, X2, X3)
activate1(n__sieve1(X)) -> sieve1(X)
activate1(n__nats1(X)) -> nats1(X)
activate1(X) -> X